#ifndef _VECTOR3_H
#define _VECTOR3_H

class Vector3
{
public:
	float x, y, z;

	Vector3()
	{
		x = 1;
		y = 1;
		z = 1;
	}

	Vector3(Vector2 vector)
	{
		x = vector.x;
		y = vector.y;
		z = 1;
	}

	Vector3(float X, float Y, float Z)
	{
		x = X;
		y = Y;
		z = Z;
	}

	Vector3 CrossProduct(const Vector3& vector) const
	{
		Vector3 result;
		result.x = (y * vector.z) - (z * vector.y);
		result.y = (z * vector.x) - (x * vector.z);
		result.z = (x * vector.y) - (y * vector.x);
		return result;
	}

	float DotProduct(const Vector3& vector) const
	{
		return ((x * vector.x)+(y * vector.y)+(z * vector.z));
	}

	Vector3 operator - (const Vector3& vector) const
	{
		return Vector3(x - vector.x, y - vector.y, z - vector.z);
	}
};

#endif